//app.js
App({
  onLaunch: function() {
    var _this = this;
    _this.onCheckMinigram()
    //读取缓存
    try {
      var data = wx.getStorageSync('cache')
      if (data) {
        _this.cache = data;
        _this.processData(data);
      }
    } catch (e) {}
  },
  //后台切换至前台时
  onShow: function() {

  },
  //getUser函数，在index中调用
  getUser: function(update_cb, bind) {
    var _this = this;

    function isEqualObject(obj1, obj2) {
      if (JSON.stringify(obj1) == JSON.stringify(obj2)) {
        return true;
      }
      return false;
    }
    wx.login({
      success: function(res) {
        if (res.code) {
          console.log('code', res.code)
          //向服务器发送code 获取用户openid
          wx.request({
            url: _this._server + '/Weixin_Hodna/WxLogin.ashx',
            data: {
              method: 'WxLogin',
              code: res.code
            },
            success: function(res) {
              console.log('code返回的openid ', res)

              if (res.data) {
                var status = false;
                //判断缓存是否有更新
                if (!_this.cache || !isEqualObject(_this.cache, res.data)) {
                  wx.setStorage({
                    key: "cache",
                    data: res.data
                  });
                  status = true;
                  _this.processData(res.data);
                }
                //如果缓存有更新，则执行回调函数
                if (status) {
                  typeof update_cb == "function" && update_cb();
                }
              } else {
                //清除缓存
                if (_this.cache) {
                  wx.removeStorage({
                    key: 'cache'
                  });
                  _this.cache = '';
                }
              }

            },
            fail: function(res) {
              //清除缓存
              if (_this.cache) {
                wx.removeStorage({
                  key: 'cache'
                });
                _this.cache = '';
              }
            }
          });
          //调用函数获取微信用户信息
          // _this.getUserInfo((info) => {
          //   console.log('用户信息 ', info)
          //   _this._user.wx = info.userInfo
          // })
        }
      }
    });
  },
  processData: function(key) {
    var _this = this;
    var data = key;
    _this._user.is_bind = data.is_bind;
    _this._user.openid = data.user.openid;
    _this._user.we = data.user;
    return data;
  },
  //完善信息
  appendInfo: function(data) {
    var _this = this;
    wx.removeStorage({
      key: 'cache'
    });
    _this._user.we.build = data.build || '';
    _this._user.we.room = data.room || '';
  },
  showErrorModal: function(content, title) {
    wx.showModal({
      title: title || '加载失败',
      content: content || '未知错误',
      showCancel: false,
      confirmColor: '#CC0000'
    });
  },
  showLoadToast: function(title, duration) {
    wx.showLoading({
      title: '加载中',
    })
    setTimeout(function() {
      wx.hideLoading()
    }, 2000)
  },
  // 验证电话号码是否正确
  phoneVerify(phone) {
    var myreg = /^[1][3,4,5,7,8,9][0-9]{9}$/
    if (phone == '') {
      this.showErrorModal('电话号码不能为空', '提醒')
      return false
    } else if (phone.length < 11 || phone.length > 11) {
      this.showErrorModal('电话号码长度不能大于小于11位', '提醒')
      return false
    } else if (!myreg.test(phone)) {
      this.showErrorModal('电话号码格式输入有误', '提醒')
      return false
    }
  },
  // 检查小程序是否是最新
  onCheckMinigram() {
    const updateManager = wx.getUpdateManager()
    updateManager.onCheckForUpdate(function(res) {
      // 请求完新版本信息的回调
      if (res.hasUpdate) {
        updateManager.onUpdateReady(function() {
          wx.showModal({
            title: '更新提示',
            content: '新版本已经准备好，是否重启应用？',
            confirmColor: '#cc0000',
            success: function(res) {
              if (res.confirm) {
                // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                updateManager.applyUpdate()
              }
            }
          })
        })
      }
    })
  },
  _server: 'https://www.hodna.cn',
  _user: {
    //微信数据
    wx: {},
    //学生\老师数据
    we: {}
  }
});